Package Evolvability and its Relationship with Refactoring

نویسندگان

  • Asma Mubarak
  • Steve Counsell
  • Robert M. Hierons
  • Youssef Hassoun
چکیده

In this paper, we address a set of research questions investigating trends in changes to an open-source system (OSS). An interesting ‘peak and trough’ effect trend was found to exist in the system studied, suggesting that developer activity comprises of a set of high and low periods. Trends in overall changes applied to the system were complemented with empirical evidence in refactoring data for the same system; this showed a similar peak and trough effect but at different versions of the same system. This result suggests a contrasting motivation between regular maintenance practice and that of refactoring. Our analysis of high-level package trends informed some interesting cross-comparisons with refactoring practice, and some insights into why refactoring might be applied after a burst of regular change activity, rather than consistently. We use data extracted from seven Java OSS as a basis for our refactoring analysis.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Two Experiments on Subjective Evaluation of Code Evolvability

Licentiate thesis submitted for official examination for the degree of Licentiate in Technology. Software evolvability – the ease of further developing software – is an important quality attribute greatly dictating the future potential of any software system. Recent trends such as agile software development and extreme programming have highlighted refactoring – modifying the internal structure ...

متن کامل

Software systems as complex networks: structure, function, and evolvability of software collaboration graphs

Software systems emerge from mere keystrokes to form intricate functional networks connecting many collaborating modules, objects, classes, methods, and subroutines. Building on recent advances in the study of complex networks, I have examined software collaboration graphs contained within several open-source software systems, and have found them to reveal scale-free, small-world networks simil...

متن کامل

Using Refactoring Techniques to Exploit Variability in Conceptual Modeling

The term variability refers to the possibility of building different correct conceptual models for a given set of requirements in a given modeling language (for example, UML or the Entity Relationship model). We call each model a variant of the others. In previous work, we presented a framework identifying 3 different types of variability. These 3 types of differences have been shown to be pres...

متن کامل

A Systematic Aspect-Oriented Refactoring and Testing Strategy, and its Application to JHotDraw

Aspect oriented programming aims at achieving better modularization for a system’s crosscutting concerns in order to improve its key quality attributes, such as evolvability and reusability. Consequently, the adoption of aspect-oriented techniques in existing (legacy) software systems is of interest to remediate software aging. The refactoring of existing systems to employ aspectorientation wil...

متن کامل

Constrained Java and its Application for Refactoring large Java programs

Constrained Java is a subset of Java which does not allow public classes to be used as static types in any piece of code that belongs to a set of packages, defined as the Constrained Java Package Space. Instead of classes, only interfaces are are used. The enforcement of this rule leads to a very clear distinction between the type hierarchie and the implementation hierarchy. We present methods ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • ECEASST

دوره 8  شماره 

صفحات  -

تاریخ انتشار 2007